System and method for filtering unavailable devices in a presence and availability management system

ABSTRACT

A method for communicating communication network availability information regarding an individual to at least one subscriber of the individual&#39;s availability information. According to one embodiment, the method includes detecting whether the individual is present on at least one communication network and determining availability of the individual for each access level of a profile of the individual. The method further includes publishing via a network the availability of the individual to the subscriber based on an access level of the subscriber and the presence information. In addition, the method includes filtering the availability of the individual when it is detected that the individual is no longer present on the communication network.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119 to U.S.provisional patent application Ser. No. 60/266,559, filed Feb. 5, 2001,which is incorporated herein by reference.

BACKGROUND OF INVENTION

1. Field of Invention

The present invention relates generally to communications and, moreparticularly, to presence and availability management systems.

2. Description of the Background

A presence and availability management system enables users to controltheir availability and how that is displayed to other users.Accordingly, users may select if they want to be available to any givenperson (or group of people) or not, as well as how that person (or groupof people) may or may not contact them. In addition, a presence andavailability management service enables users to view the availabilityof their contacts and use that information to determine whether or notand how to initiate communications.

Presence and availability management services have two primaryfunctions. First, to collect information from multiple sources todetermine the presence and, according to user-defined preferences, theavailability of a given person. For example, a presence and availabilitymanagement service needs information on what communications network auser is on, and whether or not the user is reachable for each of thenetworks. Second, a presence and availability management service mustdistribute the availability information of a given person to interestedindividuals on a selective basis, according to a variety of user-definedpreferences and settings.

In addition to those functions, conventional presence and availabilitymanagement services have two secondary functions. First, to configureaccess control settings. A presence and availability management serviceprovides users with the ability to configure an observer's accesssettings, thereby giving users the ability to control what contactinformation observers are allowed to view. Thus, users have the choiceof what information is published to each of their observers. Second, tostore user information to enable the use of the presence andavailability management service regardless of the user's network device.By storing user information on the back-end of the presence andavailability management system, the presence and availability managementservice enables users to utilize its services regardless of the user'snetwork device as long as they have a device that is within acommunications network. Thus, users can access the presence andavailability management service if they are on a cellular phone, ahandheld device or a computer workstation.

In a conventional presence and availability management enabledcommunications system, individuals must request the appropriate presenceand availability information from the presence and availabilitymanagement sub-system when they want to communicate with otherindividuals on the communications network. However, this model poses twoissues. First, such systems do not make the presence and availabilityinformation about an individual continuously available to others. Thus,the user's interface cannot display the individual's presence andavailability information on a continuous basis. Accordingly, userscannot simply quickly glance at a contact list to see who is available.Second, having to retrieve presence and availability information onlywhen it is needed creates a delay at a critical point in time where usertolerance for it is low.

BRIEF SUMMARY OF THE INVENTION

In one general respect, the present invention is directed to a methodfor communicating communication network availability informationregarding an individual to at least one subscriber of the individual'savailability information. According to one embodiment, the methodincludes detecting whether the individual is present on at least onecommunication network and determining availability of the individual foreach access level of a profile of the individual. The method furtherincludes publishing via a network the availability of the individual tothe subscriber based on an access level of the subscriber and thepresence information. In addition, the method includes filtering theavailability of the individual when it is detected that the individualis no longer present on the communication network.

In another general respect, the present invention is directed to apresence and availability (P&A) management server for communicatingcommunication network availability information regarding an individualto at least one subscriber of the individual's availability information.According to one embodiment, the server includes a presence detectionengine for detecting whether the individual is present on at least onecommunication network and an availability management engine incommunication with the presence detection engine for publishing to thesubscriber, via a network, communication network availability of theindividual. The server additionally includes an adaptive feedback modulein communication with the presence detection engine and the availabilitymanagement engine.

BRIEF DESCRIPTION OF THE FIGURES

Embodiments of the present invention are described in conjunction withthe following figures, wherein:

FIG. 1 is a block diagram of a presence and availability (P&A)management system according to one embodiment of the present invention;

FIG. 2 is an example of an availability profile according to oneembodiment of the present invention;

FIG. 3 is a diagram depicting what information subscribers at variousaccess levels receive for the profile of FIG. 2;

FIG. 4 is a diagram of a P&A management server according to oneembodiment of the present invention;

FIG. 5 is a diagram illustrating the process flow through the P&Amanagement server of FIG. 4 according to one embodiment of the presentinvention;

FIG. 6 is a diagram of the P&A management server according to oneembodiment of the present invention;

FIG. 7 is a diagram illustrating the process flow through the P&Amanagement server of FIG. 6 according to one embodiment of the presentinvention;

FIG. 8 is a screen shot of a subscriber according to one embodiment ofthe present invention;

FIG. 9 is a diagram of a client terminal according to one embodiment ofthe present invention;

FIG. 10 is a diagram of the process flow through the client terminal ofFIG. 9 according to one embodiment of the present invention; and

FIG. 11 is a diagram of a system with a secondary domain name serveraccording to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

It is to be understood that the figures and descriptions of thefollowing embodiments have been simplified to illustrate elements thatare relevant for a clear understanding of the present invention, whileeliminating, for purposes of clarity, other elements. For example,certain operating system details and modules of computer processingdevices are not described herein. Those of ordinary skill in the artwill recognize, however, that these and other elements may be desirablein a typical communications network. However, because such elements arewell known in the art, and because they do not facilitate a betterunderstanding of the present invention, a discussion of such elements isnot provided herein.

FIG. 1 is a diagram of a presence and availability (P&A) managementsystem 10 according to one embodiment of the present invention. Thesystem includes a P&A management server 12 in communication with aclient terminal 22 via a network 16. The client terminal 22 is sometimesreferred to herein as “a client.” The P&A management server 12 include apresence detection engine 18 and an availability management engine 20.Profile information, as described further herein, may be stored in adatabase 24 of the server 12. The P&A management server 12 is incommunication with at least one client terminal 22. In FIG. 1, only oneclient terminal 22 is illustrated, although a number of other clientterminals may also be in communication with the P&A management server 12via the network 16. The client terminal 22 is illustrated as a personalcomputer in FIG. 1, although according to other embodiments the clientterminal may be another type of communication device such as, forexample, a wireless telephone (such as a WAP (Wireless ApplicationProtocol)-enabled phone) or a wireless or connected personal digitalassistant (PDA).

The network 16 may be any connected system of, for example,communication lines, channels, and radio interfaces, used to exchangeinformation between the P&A management server 12 and the client 22.According to one embodiment, the network 16 may include, for example,the Internet, an intranet, the public switched telephone network (PSTN),or a wireless telephone or radio network. According to one embodiment,the P&A management server 12 and client 22 may communicate via thenetwork 16 using an open draft TCP/IP based protocol.

As used herein, the term “presence” is defined as the ability of anindividual to access a particular communications network. For example,if a person is near a landline telephone or wireless telephone that isswitched on, that person is “present” on a telephone network, i.e., theperson is able to use the telephone network to communicate with otherpeople also on the network. Conversely, if a person is not near alandline telephone or wireless telephone, or the wireless telephone isswitched off, then that person is not present on a telephone network,and thus unable to communicate with others on the telephone network.Similarly, if a person uses an instant messaging (IM) application at agiven point in time, the person is present on that instant messagingnetwork.

In addition, as used herein the term “availability” is defined as thewillingness of an individual who is present on one or morecommunications networks to be reached by one or more persons. Followingthe telephone network example above, if a person is near a landline orwireless telephone and has the intention or willingness to answer thephone when a particular person calls, the person is not only present butavailable on the telephone network. However, if the person is unwillingor unable to answer either phone when it rings, although present, theperson is not available.

It should be noted that a person needs to be present on a network inorder to be available, yet the opposite is not necessarily true. Inaddition, presence is absolute. That is, a person is either present ornot on a given network. However, availability depends on, e.g., otherpeople, situations, circumstances, personal preferences, etc. Forexample, a person can be a available to a first group of people, butunavailable to a separate group.

According to one embodiment, the system 10 employs apublisher-subscriber model. According to such an embodiment, anindividual defines a P&A profile set, which is stored on the P&Amanagement server 12. When the individual transmits a change in profileto the server 12, the server publishes the change to each of theconnected clients 22 that are subscribers of the individual'sinformation. The publisher-subscriber model enables subscribers toobserve a particular individual's P&A information instantly.

Hereinafter, a user of the client terminal 22 is typically referred toas “subscriber.” Unless noted otherwise, the term “subscriber” is usedsynonymously with the term “observer.” One instance, however, in whichan observer is not the same as a subscriber is if someone requests anindividual's P&A information just once, without placing a subscriptionfor it. In FIG. 1, the system 10 is illustrated as including only oneserver 12 and one client 22, although other embodiments of the presentinvention contemplate a distributed architecture including multiplemanagement servers and multiple clients.

An individual user of the system 10 may initially configure his P&Aprofile settings in order to instruct the system 12 how his informationis to be distributed. According to one embodiment, the individual mayconfigure their P&A management profile set according to the followingsteps. First, the individual is requested to enter information regardingeach of the communication devices that the individual uses and acorresponding address for each of those devices. For example, theindividual may have a landline telephone with a phone number and acomputer workstation with an e-mail address. Second, the individualidentifies and categorizes the people to whom he wants his informationpublished. This allows individuals to select the “more important” peopleand to give them easier access, whereas the “less important” people aregiven minimum access, and undesirable groups of people are restrictedfrom access altogether. These different group levels may be referred toas “access levels.” Third, the individual may define a series ofprofiles that describe a situation that the individual may be in suchas, for example, “at home,” “at office,” or “on the road.” Further, theindividual may identify how he wishes to be communicated with for eachprofile and for each access level. In addition, where several modes ofcommunication over one medium are possible, the individual may identifywhich mode is preferable.

For example, an individual may have an office profile as indicated inFIG. 2. Thus, a subscriber with an access level of “Important” wouldreceive the items marked “Yes” in the “Important” column, with thepreference indicated (where appropriate), thereby making it very easyfor “important” subscribers to communicate with the individual. Personsin the “Normal” access level would receive less contact information thanpersons in the “Important” access level, and persons in the “Restricted”access level would receive even less contact information. Persons in the“Blocked” access level would receive no contact information at all. Theindividual may specify which persons belong to each access level foreach profile.

Accordingly, as illustrated in FIG. 3, subscribers in various accessgroups would have access to different information regarding theindividual. Similarly, the individual may define other profiles fordifferent situations such as, for example, “at home,” “on the road,”“meeting” and “vacation.” Collectively, the individual's profile foreach of these situations may define a profile set.

As discussed, an individual may configure his profile such thatsubscribers at certain access levels have access to the individual's P&Ainformation at certain times. For example, the individual may configurehis profile such that his boss has access to the individual's P&A whilethe individual is at work; his wife has access all the time; and hisparents have access only on weekends while not at work. Accordingly,when the P&A management server 12 detects a change in, for example, theindividual's situation, the P&A management server 12 consults theindividual's defined rules and preferences (which may be stored by theP&A management server 12), and transmits the appropriate information tothe clients 22 for subscribers to the individual's information based onthe subscriber's access groups. The presence detection engine 18 maydetect a change in the individual's situation, as described furtherhereinafter, or the individual may communicate the change to themanagement server 12 directly.

Thus, with reference to the example mentioned previously, when the P&Amanagement server 12 detects that the individual is at work, the server12 transmits the individual's updated P&A information to the clients 22for the individual's boss and spouse. The information that the boss andspouse receive, however, may be different based on their access levels,as discussed previously. For example, the boss may be informed of theindividual's instant messaging information, but the individual's wifemay not. When the individual returns home, the wife's information may beupdated and the individual's parent may begin receiving informationregarding the individual's P&A (although it may not be the same as thewife's information depending on their access levels). The boss, however,will no longer have access to the individual's information.

An individual may define his profile set, including his rules andpreferences, via a user-interface in communication with the P&Amanagement server 12. According to one embodiment, the user-interfacemay comprise a graphical user interface (GUI) application loaded on acomputer device in communication with the P&A management server 12. Oncedefined, the P&A management server 12 may store the profiles, rules andpreferences in a database (not shown). For security purposes, access toan individual's profiles etc. may be based on verification of a userPIN, password or other security mechanism. Accordingly, an individualmay modify his profile settings as necessary.

In the previous example, a change in the individual's physical locationtriggered situation changes, and thus a change of profile. It should benoted that other factors may trigger changes in the individual's profileincluding, for example, time of day and the individual's mood, asexplained further hereinbelow.

FIG. 4 is a diagram of the P&A management server 12 according to oneembodiment of the present invention. As illustrated in FIG. 4, theserver 12 includes a presence detection engine 18 and an availabilitymanagement engine 20. The presence detection engine 18 may determine anindividual's presence upon particular networks based on various inputs,as described further hereinbelow. The presence detection engine 18 maytransmit the presence information to the availability management engine20, which in turn may determine the individual's availability based onthe presence information as well as additional information, such as theindividual's situation and defined rules and preferences. The determinedavailability information may then be transmitted to subscribers of theindividual's availability information via the network 16, as describedpreviously.

The engines 18, 20 may be implemented as software code to be executed bya processor in the server 12 using any suitable computer language suchas, for example, Java, C++ or Pert using, for example, conventional orobject-oriented techniques. The software code may be stored as a seriesof instructions or commands on a computer readable medium, such as arandom access memory (RAM), a read only memory (ROM), a magnetic mediumsuch as a hard-drive or a floppy disk, or an optical medium such as aCD-ROM.

As illustrated in FIG. 4, the presence detection engine 18 may receivevarious inputs to determine, to the extent possible, the individual'spresence. One type of input that the presence detection engine 18 mayuse to help determine the individual's presence is time-based input 40.For example, based on time of day information and knownscheduling/calendar by information, the presence detection engine 18 maybe able to determine an individual's presence. For example, if theindividual had scheduled to be in his office from 9am to 5pm, thepresence detection engine 18 may determine that during that time periodthe individual is present on the networks available to him in hisoffice, which may be, for example, telephone and instant messaging.

Another type of input that the presence detection engine 18 may use isuser-location input 42. User-location information may be supplied, forexample, from a number of possible networks or devices in communicationwith the server 12. For example, the server 12 may include a radioreceiver such that the presence detection engine 18 is in communicationwith radio networks including, for example, a Bluetooth network, thatmay communicate information relating to the individual's physicallocale. In addition, the server 12 may be in communication with a GPSreceiver associated with the user. According to another embodiment, thepresence detection engine 18 may be in communication with Enhanced 911(E-911) networks for possible user-location information.

In addition, the presence detection engine 18 may receive input fromvarious hardware devices that may relate information regarding userlocation. For example, the presence detection engine 18 may receiveinformation from cameras, such as security cameras located at a place ofemployment. Thus, the camera information may relate information as towhether the individual is in the locale of his place of employment.Additionally, the presence detection engine 18 may receive input fromsensors, such as pressure sensors, to help ascertain the locus of theindividual. The pressure sensors may be, for example, located in theoffice chair or the computer keyboard of the individual, thus providinginformation regarding the individual's locus. Furthermore, the presencedetection engine 18 may receive inputs from security equipment, such asactive badge sensors, smart card sensors and/or magnetic card readers tohelp ascertain the location of the individual.

Additionally, the presence detection engine 18 may be in communicationwith other networks/device to help determine presence information. Forexample, the presence detection engine 18 may be in communication with aSS7 network of the public switched telephone network (PSTN) to determineif the individual is present on a landline telephone such as, forexample, the landline desk phone 44 in his office. For example, thepresence detection engine 18 may be in communication with a servicecontrol point (SCP) of the SS7 network. According to another embodiment,the presence detection engine 18 may receive inputs from a Home LocationRegister (HLR) of a wireless telephone network to determine if theindividual is present on his mobile phone 46. The wireless telephonenetwork may be, for example, an AMPS (Advanced Mobile Phone Service)network, a TACS (Total Access Communication System) network, a UMTS(Universal Mobile Telecommunications System), a GSM network, a CDMAnetwork, a TDMA network, a GPRS (General Packet Radio Service) networkor a wireless CDPD (Cellular Digital Packet Data) network. According toother embodiments, the presence detection engine 18 may also or insteadof be in communication with a short messaging system center (SMS-C) of ashort messaging system network or a gateway GPRS support node (GGSN).According to another embodiment, the presence detection engine 18 may bein communication with a server of a computer network.

The presence detection engine 18 may also receive inputs from computernetworks A such as, for example, a local Ethernet, a LAN, a wirelessLAN, a MAN, a WAN, or a TCP/IP network, to determine if the individualis present on such a network, such as via his personal computer (PC) 48.Similarly, the presence detection engine 18 may be in communication withcommunication networks to determine whether an individual is present onother devices such as, for example, a personal digital assistant (PDA)50 or a pager 52.

Based on the presence information on such devices 44-52, the presencedetection engine 18 may determine additional information about theindividual, such as the individual's status 54 on particular networks(such as on or off) or the individual's physical location 56. Inaddition, based on information regarding each of these devices 44-53 thepresence detection engine 18 may determine the individual's currentcapabilities 58 such as, for example, whether he can receive voiceinformation, data files, audio files, video files, etc.

The presence information ascertained by the presence detection engine 18is communicated to availability management engine 20, which determinesthe individual's availability based thereon. To determine theindividual's availability, the availability management engine 20 mayreceive information transmitted by the individual regarding a change intheir situation 60. Such a change in user situation may be communicatedto the availability management engine 20 through a communication networksuch as, for example, an IP network, a telephone network, or a radionetwork.

The availability management engine 20 may consult the individual's rulesand preferences to determine the individual's availability based on, forexample, the presence information from the presence detection engine 18and the individual's situation. The individual's rules and preferencesmay be stored in a database 64, as illustrated in FIG. 4, or may bestored with the profile information in the database 24. Additionally,the individual may specify the observers 62 who receive the individual'scontact information. The observers may be specified according to, forexample, a group basis or an individual basis. The observerclassification information may also be stored in a database, such as theprofile database 24.

The availability information may then be published to the individual'ssubscribers (via the client terminals). Because the availabilityinformation is determined, in part, based on the presence informationfrom the presence detection engine 18, the availability managementengine 20 may modify the published contact information sent tosubscribers based on the presence information if, for example, theindividual's profile is inconsistent with the actual individual'spresence. Thus, availability management engine 20 may be configured totake the presence information into account and cease from relaying theinconsistent contact information to subscribers.

FIG. 5 is a diagram of the process flow of the P&A management server 12according to one embodiment of the present invention. The processinitiates at block 88 where the presence detection engine 18 ascertainspresence information regarding the user as described previously. Atblock 90, the user's current profile is retrieved from the profiledatabase 24 based on the current user situation. At block 92, the listof observers for each access level (e.g., important, normal, restricted,work, blocked, etc.) for the current profile is retrieved.

At block 94, the availability management engine 20 may determine theuser's availability for each access level based on the user's profile.At block 98 the availability information is distributed (published) tothe subscribers of the information via the network 16 on a per accesslevel basis.

According to another embodiment, the availability management engine 20may first retrieve the appropriate profile based on the individual'ssituation. The individual's presence and availability information maythen be filtered before it is published to the observers. FIG. 6 is adiagram of the P&A management server 12 according to such an embodiment.The illustrated embodiment includes an adaptive feedback module 100,which may be implemented, for example, as software code to be executedby a processor of the server 12 using any suitable computer languagesuch as, for example, Java, C++ or Perl using, for example, conventionalor object-oriented techniques. The software code may be stored as aseries of instructions or commands on a computer readable medium, suchas a random access memory (RAM), a read only memory (ROM), a magneticmedium such as a harddrive or a floppy disk, or an optical medium suchas a CD-ROM.

The adaptive feedback module 100 may monitor the published availabilityinformation and, if the information is, for example, inaccurate orunusable, make adjustments to either the presence detection engine 18 orthe availability management engine 20 to ensure the integrity of thepublished availability information. For example, if the publishedavailability information for an individual indicates that he isavailable on his mobile telephone, but if the last three times someonecalled the individual on his mobile telephone the individual did notanswer, then the adaptive feedback module 100 may instruct the presencedetection engine 18 of this condition such that the publishedavailability information for the individual will not longer indicatemobile telephone availability to the appropriate access levels untilthere is evidence that the individual resumes usage of his mobiletelephone. The adaptive feedback module 100 may determine whether theindividual's availability information is, for example, inaccurate orunusable based on information received from the appropriatecommunication networks with which the P&A management server 12interfaces, as described previously.

According to one embodiment, the adaptive feedback module 100 may offerthe individual a suggestion that the individual has the option ofchoosing to accept or reject. For example, if the adaptive feedbackmodule 100 determines that the individual has not answered his lastthree telephone calls although he is present on the network, theadaptive feedback module 100 may send the individual a message askingwhether he wants to discontinue publishing whether he is available onthe telephone network. In this way, the individual has the ability totune his presence and availability information.

FIG. 7 is a diagram of the process flow through the P&A managementserver 12 of FIG. 6 according to such an embodiment. The processinitiates at block 102, where the availability management engine 20retrieves the individual's profile based on the individual's presentsituation, as discussed previously. At block 104, the availabilitymanagement engine 20 may retrieve the user-specified list of subscribersfor each access level of the profile. Next, at block 106, based on theuser's profile, the availability management engine 20 may determine theavailability of the user for each access level.

At block 107, the presence detection engine 18 may ascertain theindividual's presence on each of the monitored networks, as discussedpreviously. Based on this information, at block 108, the adaptivefeedback module 100 may filter the individual's P&A information, asdiscussed previously. Next, at block 109, the P&A management server 12may publish the information to each of the subscribers.

The P&A management server 12 may transmit the availability informationto the subscriber at the client terminal 22. FIG. 8 is a screen shot ofthe information that may be displayed to a subscriber at a clientterminal 22 according to one embodiment of the present invention. Asillustrated, the subscriber may navigate the list of names in the righthand window (“Contacts Program”) to access the P&A information regardingthe highlighted individual in the left hand window (“ContactProperties”). The indicator in the right hand window adjacent to eachlisted individual may identify the availability means for the particularindividual. For example, in FIG. 8 Alex is available by telephone andinstant messaging, but Tom is only available by telephone and Pete isonly available by instant messaging. The contact information in the lefthand window may be updated based on availability information transmittedfrom the identified individual's P&A management server 12.

As discussed previously, according to one embodiment the P&A managementserver 12 may store individuals' P&A information profiles in thedatabase 24. By storing the P&A information profiles on the server 12,individuals only need to send small amounts of information to the server12 when changing their profile. For example, when an individual using amobile device requests a switch to, for example, an “At Home” situation,the individual only needs to send a small amount of information via themobile device instructing the server 12 to implement the “At Home”profile rather than having to send all the P&A information associatedwith the “At Home” situation, which may be considerably larger. Bystoring the P&A information profiles on the server 12, the server 12 mayhave the necessary information available when individuals switchprofiles. Thus, individuals only need to let the server 12 know whichsituation profile they prefer.

Storing the P&A information profiles on the server 12 additionallyreduces the amount of resources required to invoke a profile switchoperation. This may be an important feature, particularly when mobileand/or handheld devices are used. This is because conventional mobileand handheld devices, in contrast to conventional computer workstations,do not have the capability to store and process large amounts ofinformation in relatively brief time periods. Furthermore, by reducingthe amount of information transmitted, the system 10 avoids slowerresponse times, increased latency and in general improves the user'sservices and experience.

In conventional P&A management systems that support heterogeneouscommunications networks, a given person may appear several times in thesubscriber's contact list—each time corresponding to an availableaddress. For example, each phone number and IM address of a particularindividual may be listed. According to an embodiment of the presentinvention, as illustrated in the “Contacts Program” window of FIG. 8,the display at the client terminal 22 may relate the various entries foran individual and merge them together as one entry. For example, withreference to FIG. 8, there is one entry (indicator) for Alex, indicatingthat Alex is available on a telephone network and an IM network. This isindicated by the telephone icon and the IM icon next to Alex's name.Thus, the single summary indicator may be a summary of the individual'savailability, with the single summary indicator containing severaldifferent icons or states that convey the availability information.According to other embodiments, the icons may indicate types of data theindividual is available to receive such as, for example, text files,audio files, streaming audio files, video files, streaming video files,graphics files and streaming graphics files. According to oneembodiment, the single indicator may be used to indicate the networktype that the individual is available on such as, for example, IM,telephone, facsimile, etc. Other network types include a short messagingsystem (SMS) network, a voice over IP (VoIP) network, a paging networkand a two-way paging network.

According to another embodiment, the single indicator may indicate thedevice type that the individual is available one, such as, for example,wireless telephone, landline telephone, personal digital assistant(PDA), computer, etc. Other device types include a SMS phone, a pager, atwo-way pager, a wireless PDA, a WAP phone, and a GPRS phone.

According to another embodiment, the single indicator may be used toindicate the availability of a group of people based on whether at leastone person of the group (or some other threshold number of people fromthe group) is available. According to such an embodiment, when at leastone individual from the group is available, the single indicator maymerge the availability of each individual of the group into oneindicator that summarizes whether the sales staff is available. Forexample, the group may provide a service such as, for example, technicalsupport, customer service, sales, etc. Thus, for example, if at leastone member of the sales staff is available, the single indicator mayindicate that the sales staff is available. Any type of group may beused. For example, other groups include employees of a company,employees of a given department, field sales representative, customerrelationship management employees. Other groups include, for example,volunteers and members of a club or social group.

Furthermore, a large number of inputs for each of an individual'scommunications devices on the various networks may be processed usingthe presence detection engine 20 to determine the P&A status of thatindividual, thus allowing the results to be combined in a singleavailability indicator. For example, if John Doe has three telephonenumbers (e.g., home, work and wireless) and is currently present andavailable on only one telephone network, the server 12 may notifysubscribers of John Doe's information that he is present and availablefor telephone calls regardless of the particular telephone John Doe iscurrently capable of using. Accordingly, when a subscriber wishes tocontact Joe Doe via instant messaging, the server 12 provides theappropriate IM address to the subscriber, taking into account John Doe'spreference settings for the subscriber's access group as stored, forexample, in the rules and preferences database 64. Thus, embodiments ofthe present invention may provide a user-friendly interface allowingsubscribers to contact individuals without having to be concerned aboutdifferent communication devices, their addresses and capabilities.Subscribers may instead refer to a single summary indicator and use thatinformation to initiate point-to-point contact.

FIG. 9 is a block diagram of the client terminal 22 according to oneembodiment for realizing the single summary indicator describedpreviously. As illustrated in FIG. 9, the client terminal includes anindicator module 110 in communication with a user interface 112. Theindicator module 110 may be, for example, implemented as software codeto be executed by a processor of the client terminal 22 using anysuitable computer language such as, for example, Java, C++ or Perlusing, for example, conventional or object-oriented techniques. Thesoftware code may be stored as a series of instructions or commands on acomputer readable medium, such as a random access memory (RAM), a readonly memory (ROM), a magnetic medium such as a hard-drive or a floppydisk, or an optical medium such as a CD-ROM. The user interface 112 mayinclude, for example, a GUI (Graphical User Interface) or a CUI(Character-based user interface).

The indicator module 110 may receive availability information from oneor more P&A management servers 12 and merge the contact information foreach individual into a single summary indicator, as described previouslyin connection with FIG. 8, for display by the user interface 112. Theindicator may identify the individual, such as by name, as illustratedin FIG. 8. In addition, as illustrated in FIG. 8, the indicatorgenerated by the indicator module 110 may indicate whether theindividual is available to receive, for example, certain data contenttypes. For example, with reference to FIG. 8, the indicator for Jonathanidentifies Jonathan by name and indicates that Jonathan is available tothe subscriber to receive data content by telephone and instantmessaging.

FIG. 10 is a diagram of the process flow through the indicator module110 according to one embodiment. The process initiates at block 120,where the indicator module 110 receives the availability information ofeach individual to which the client is a subscriber (n individuals). Forexample, with reference to FIG. 8, the client terminal receives theavailability information for Alex, Jonathan, Kit, Corby, Cyndi, Tom,Pete, Roberto, Cecelia, as well as the individuals in the “Mint” folder.At block 122, the indicator module 110 may generate a single summaryindicator for each of the n individuals. For example, the indicatormodule 110 may relate the various addresses for a given individual andmerge them into a single summary indicator for each of the individuals,as illustrated in FIG. 8.

At block 124, a counter, k, is set to equal 1. At block 126, forindividual k for which the client subscribes to contact information, theindicator module 110 may determine whether an address for each datacontent type (e.g., telephone, text (IM), video, graphic, audio, etc.)has been transmitted from the P&A management server 12. For a particularcontent type, if no address has been received, the process advances toblock 128 where the indicator module 110 displays that individual k isnot available for the particular content type. For example, withreference to FIG. 8, the indicator for Tom indicates that Tom is notavailable to receive IM (text) data. Conversely, if at block 126 it isdetermined that an address has been received for the particular contenttype, the process advances to block 130 where the indicator module 110may display that the individual is available to receive the particulardata content type. This process may be repeated for each data contenttype.

Once the availability of individual k has been determined for each datacontent type, the process advances to block 132, where k is set to equalk+1. From block 132 the process advances to block 134 where it isdetermined whether k equals n. If so, the process is completed at block136. If not, the process returns to block 124 where the process may berepeated for the next individual.

In FIG. 9, the indicator module 110 is illustrated as residing on theclient terminal 22. According to other embodiments, the indicator module110 may reside, for example, on the P&A management server 12. Accordingto such an embodiment, the P&A management server 12 may forward theindicator information via the network 16 to the client terminal 22 fordisplay thereby. Such an embodiment may be advantageous where, forexample, the client 22 is a device of limited processing capability suchas, for example, a WAP-enabled telephone.

In contrast to some prior P&A management systems, embodiments of thepresent invention utilize a publisher-subscriber model. That is, theindividual's availability information is published on an event-triggeredbasis to subscribers of the individual's availability information,rather than transmitted only when requested by the subscriber.Accordingly, changes in an individual's availability are broadcastinstantly to subscribers of the individual's P&A information, assumingthose subscribers satisfy the individual's rules and preferencesregarding dissemination of his P&A information. The P&A managementserver 12, as described previously, may maintain the individual'sprofile settings. In addition, the subscribers may be equipped withclient software that allows the P&A information of various individualsto be displayed for the subscriber, such as illustrated in conjunctionwith FIG. 8.

Additionally, according to one embodiment, users of the P&A managementsystem 10 may configure their P&A profiles to specify how theiravailability information is distributed. Individuals may accomplish thistask by specifying a number of different access levels and situations.Subscribers of the individual's information are only provided withcertain availability information depending on their access level and thesituation. In addition, the P&A profiles may be stored on the P&Amanagement server 12 (such as in database 24). This obviates the needfor individuals to re-transmit all their contact information each timetheir availability changes. Rather, the P&A management server 12 maydetermine the individual's availability based merely on the individual'sprofile and information regarding the individual's situation.

For individuals that have a presence and availability on the Internet orother types of IP networks, their domain name address is often anextension of a domain name server for an organization (e.g., anemployer's corporate intranet). Consequently, communications with theindividual may typically be established by resolving the domain nameserver for the organization. However, for certain services, individualswith addresses at those domain name servers are at the mercy of thesystem administrator to modify their address entries in order to use thenew services. For example, an individual desiring to use a new instantmessaging service through a corporate intranet would require the systemadministrator to add the appropriate address entry to the corporateintranet. Often system administrators are not inclined to do this.

According to an embodiment of the present invention, illustrated in FIG.11, this potential dilemma is addressed by providing a fallbackresolution mechanism. For example, a subscriber at client terminal 22may first attempt to communicate with an individual at client terminal140 via one or more intermediate relay hosts 142. One of the hosts 142may be, for example, an instant messaging host or a presence andavailability host.

If one relay host 142 a does not know the address for the nextintermediate relay host 142 b, the first relay host 142 a may attempt tocommunicate with the second relay host 142 b by, for example, resolvinga record (such as an MX record for e-mail) for the second relay host142b at a primary domain name server 144. If that fails, the first relayhost 142 a could attempt to resolve the record at a secondary domainname server 146. The address for the record at the primary domain nameserver 144 may be a hierarchical extension of the address of thesecondary domain name server 146, as described further herein. As usedherein, the term “domain name server” includes both domain name serversfor UNIX networks as well as Windows networks, commonly referred to as“WINS” (Windows Internet Naming Service).

The secondary domain name server 146 may include a resolver 148 and anIP address database 150. The IP address database may include the IPaddress for the intermediate relay host 142 b that the primary domainserver 144 did not include. When directed to the secondary domain nameserver 146 by the primary domain name server 144, the resolver 148 mayrespond with the address of the second intermediate relay host afterinterrogating the database 150. The secondary domain name server 146 maysupply the address directly to the first relay host 142 a or, accordingto another embodiment, may supply it to the primary domain name server144, which in turn may supply the address to the relay host 142 a.

For example, if the hostname of the client terminal 140 is joe@abcd.com,and Joe wanted to use a new instant messaging service that required thesystem administrator for the abcd.com domain name server 144 to add aDNS entry of im.abcd.com to point to the appropriate host 142 b, but thesystem administrator refused to so modify the domain name server 144,the first domain name server could direct the relay host 142 a to thesecondary domain name server 146, efg.com, to resolveim.abcd.com.resolver.efg.com. The secondary domain name server 146 maybe configured appropriately through a web-based interface and, whenqueried, would direct the relay host 142 a to the appropriate server (toim.abcd.com in this example). According to one embodiment, a query, byemail for example, may be sent to joe@abcd.com to determine whether theentry may be legitimately made.

The process just described is not limited to situations where a hostdoes not know the address of another host. The process may also beutilized to allow a client terminal (such as terminals 22 or 140)resolve the address of a host 142 and vice versa. The primary domainname server 144 may be programmed to supply the address for thesecondary domain name server 146 to the intermediate host 142 or clientterminal. According to other embodiment, the client terminal orintermediate host may be programmed with the address of the secondarydomain name server 146 for when the primary domain name server 144 isnot capable of resolving the request.

Although the present invention has been described herein with respect tocertain embodiments, those of ordinary skill in the art will recognizethat many modifications and variations of the present invention may beimplemented. For example, with respect to FIG. 12, additionalhierarchical domain name servers may be utilized. The foregoingdescription and the following claims are intended to cover all suchmodifications and variations.

1.-40. (canceled)
 41. A method for communicating communication networkavailability information regarding an individual to at least a firstperson and a second person, the method, comprising: detecting whetherthe individual is present on at least one communication network;determining availability of the individual; publishing via a network afirst availability profile for the individual associated with a firstaccess level of the individual to the first person; publishing via thenetwork a second availability profile associated with a second accesslevel of the individual to the second person, wherein the first andsecond availability profiles respectively indicate different ways inwhich the first person and the second person may access the individual,wherein the first person views the first availability profile beforecontacting the individual and wherein the second person views the secondavailability profile before contacting the individual, wherein the firstprofile indicates that the individual is available on at least a firstnetwork and a second network, wherein the first and second networks aredifferent and are selected from the group consisting of a telephonenetwork, a facsimile network, an instant messaging network, a shortmessaging system (SMS) network, a voice over IP (VoIP) network, and apaging network, and wherein the second profile indicates that theindividual can be contacted via the first network but not the secondnetwork; and filtering for the availability of the individual when it isdetected that the individual is no longer present on the communicationnetwork.
 42. The method of claim 41 wherein the first profile is viewedby the first person in the first person's contact list and the secondprofile is viewed in the second person's contact list.
 43. The method ofclaim 41 wherein the first and second profiles are viewed in theindividual's contact list.
 44. The method of claim 41 wherein the firstand second networks are represented by icons in the first and secondavailability profiles.
 45. The method of claim 41 wherein the first andsecond profiles are defined by the individual using a graphical userinterface.
 46. The method of claim 41 further comprising automaticallydetermining if the first and second profiles are inaccurate or unusableand making adjustments to either a presence detection engine or anavailability management engine to ensure that the first and secondprofiles are accurate and useable.
 47. A computer readable medium havingstored thereon instructions which, when executed by a processor, causesthe processor to: detect whether an individual is present on at leastone communication network; determine the availability of the individual;publish via a network a first availability profile for the individualassociated with a first access level of the individual to the firstperson; publish via the network a second availability profile associatedwith a second access level of the individual to the second person,wherein the first and second availability profiles respectively indicatedifferent ways in which the first person and the second person mayaccess the individual, wherein the first person views the firstavailability profile before contacting the individual and wherein thesecond person views the second availability profile before contactingthe individual, wherein the first profile indicates that the individualis available on at least a first network and a second network, whereinthe first and second networks are different and are selected from thegroup consisting of a telephone network, a facsimile network, an instantmessaging network, a short messaging system (SMS) network, a voice overIP (VOIP) network, and a paging network, and wherein the second profileindicates that the individual can be contacted via the first network butnot the second network; and filter for the availability of theindividual when it is detected that the individual is no longer presenton the communication network
 48. The computer readable medium of claim47 wherein the first profile is viewed by the first person in the firstperson's contact list and the second profile is viewed in the secondperson's contact list.
 49. The computer readable medium of claim 47wherein the first and second profiles are viewed in the individual'scontact list.
 50. The computer readable medium of claim 47 wherein thefirst and second profiles are defined by the individual using agraphical user interface.
 51. The computer readable medium of claim 47further comprising instructions, which when executed by a processor,automatically determines if the first and second profiles are inaccurateor unusable and makes adjustments to either a presence detection engineor an availability management engine to ensure that the first and secondprofiles are accurate and useable.